python路径、工作路径、文件路径问题、改变当前路径 您所在的位置:网站首页 python 工程目录 python路径、工作路径、文件路径问题、改变当前路径

python路径、工作路径、文件路径问题、改变当前路径

2023-09-25 08:00| 来源: 网络整理| 查看: 265

最近又遇到之前积累下的python路径问题,于是花了好大功夫才理清这些路径之前的关系,以及如何使用。

1.抛出问题Fig.1. 无法执行的案例Fig.2. 可执行的案例

Fig.3. 虚拟环境下脚本默认的编译器 Fig.4. conda环境下自带的编译器 由此,我们可见在执行脚本程序时,编译器所在的路径决定了CWD(当前工作路径),我们不能直接像Fig.1/2一样无脑地直接读取png图像了。**那这样有人就说,那我每次把脚本的编译器选在同一个地方不就好了么?像Fig.2这样的情况。**通常,当我们不需要conda管理packages时,我们创建环境直接用python虚拟环境下自带的编译器python.exe,如Fig.3.所示,此时CWD是我们需要的;实际上,我们在运行程序时,需要用到conda控制环境,在不同的环境下搭不同版本的packages方便我们管理,因此在用conda的情况下,编译器默认路径自动切换到xxx\anaconda\envs"your envs"\python.exe,如Fig.4.所示,于是就导致获得CWD不是我们所需要的。

2.基本概念

import os #1获得当前路径,cwd=current working directory os.getcwd() #2获得绝对路径 os.path.abspath() #3获得当前路径的上级目录路径 os.path.dirname() #4组合使用,获得当前**文件路径** os.path.abspath(os.path.dirname(__file__)) #5组合使用,获得当前**工作路径** os.path.abspath(os.getcwd()) #6**改变当前工作目录到指定路径** os.chdir()

3.利用os.chdir()解决1.的情况 Fig.5. os.chdir()切换当前工作路径到当前文件路径

4.提议 建议大家平常养成习惯,尽可能减少在比较大的工程中使用’.’, ‘./’, './/'这些返回符号,尽可能还是使用绝对路径控制,具体案例可参考参考文献1中的案例。

5参考文献: [1]:python慎用os.getcwd() ,除非你知道【文件路径与当前工作路径的区别】https://www.cnblogs.com/liangmingshen/p/12794631.html [2]:Python3 os.chdir() 方法https://www.runoob.com/python3/python3-os-chdir.html [3]:python相对路径文件无法读取,更改工作路径https://blog.csdn.net/lovely__RR/article/details/108000037



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有